﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Core.Models;
using System.Data.Objects;

namespace Core.Repositories
{
    public class PostRepository : Repository<Post, DatabaseEntities>
    {
        public PostRepository() : base()
        {
                     
        }

        public PostRepository(ObjectContext context) : base(context)
        {
            
        }   

        //DatabaseEntities _db = new DatabaseEntities();

        //public IQueryable<Post> Get()
        //{
        //    return _db.Posts.Include("Comments").OrderByDescending(t => t.CreatedDate).ThenByDescending(t => t.ModifyDate);
        //    //return _db.Posts.OrderByDescending(t => t.CreatedDate).ThenByDescending(t => t.ModifyDate);
        //}

        //public Post GetById(int id)
        //{
        //    return Get().SingleOrDefault(t => t.Id == id);
        //}

        //public Post Create(Post post)
        //{
        //    try
        //    {
        //        _db.Posts.Add(post);
        //        _db.SaveChanges();

        //        return post;
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new ArgumentException(ex.Message);
        //    }
        //}

        //public Post Edit(Post post)
        //{
        //    try
        //    {
        //        var original = Get().SingleOrDefault(t => t.Id == post.Id);
        //        if (original != null)
        //        {
        //            original.Title = post.Title;
        //            original.Content = post.Content;
        //            original.ModifyDate = DateTime.Now;

        //            _db.SaveChanges();
        //        }

        //        return original;
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new ArgumentException(ex.Message);
        //    }
        //}

        //public int Delete(int id)
        //{
        //    try
        //    {
        //        var post = Get().SingleOrDefault(t => t.Id == id);
        //        if (post != null)
        //        {
        //            _db.Posts.Remove(post);

        //            return _db.SaveChanges();
        //        }
        //        return 0;
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new ArgumentException(ex.Message);
        //    }
        //}
    }
}
